home *** CD-ROM | disk | FTP | other *** search
Lex Description | 1994-05-05 | 1.0 KB | 52 lines |
- %{
- #include "sysinfo.h"
- char *word;
- int number;
- int unit;
-
- #ifndef yywrap
- static int yywrap () { return 1; }
- #endif
- %}
- %%
- "(" { return '(';}
- ")" { return ')';}
- "[" { return '[';}
- "]" { return ']';}
- " " { ; }
- ";".* { ; }
- "\t" { ; }
- "\n" { ; }
- "\""[^\"]*"\"" {
- yylval.s = malloc(strlen (yytext));
- strcpy(yylval.s, yytext+1);
- yylval.s[strlen(yylval.s)-1] = 0;
- return NAME;
- }
-
- 0x[0-9a-f]+ {
- yylval.i = strtol(yytext,0,16);
- return NUMBER;
- }
-
- [0-9]+ {
- yylval.i = atoi(yytext);
- return NUMBER;
- }
-
-
- "bits" { yylval.i =1 ;return UNIT;}
- "bit" { yylval.i = 1; return UNIT;}
- "bytes" { yylval.i= 8; return UNIT;}
- "byte" { yylval.i = 8; return UNIT;}
-
- "int" { yylval.s = "INT"; return TYPE;}
- "barray" { yylval.s = "BARRAY"; return TYPE;}
- "chars" { yylval.s = "CHARS"; return TYPE;}
- "variable" { yylval.i = 0; return NUMBER;}
- "counted" { yylval.i = -4; return NUMBER;}
- "addrsize" { yylval.i = -2; return NUMBER; }
- "segsize" { yylval.i = -1; return NUMBER; }
- "cond" { return COND;}
- "repeat" { return REPEAT;}
-